package cn.iocoder.yudao.module.reclaim.convert;

import cn.iocoder.yudao.module.reclaim.api.checkres.dto.ReclaimCheckResDTO;
import cn.iocoder.yudao.module.reclaim.controller.admin.productcheckdeductitem.vo.ReclaimCheckDeductItemRespVO;
import cn.iocoder.yudao.module.reclaim.controller.admin.productcheckres.vo.ReclaimCheckResRespVO;
import cn.iocoder.yudao.module.reclaim.controller.admin.productcheckres.vo.ReclaimCheckResSaveReqVO;
import cn.iocoder.yudao.module.reclaim.dal.dataobject.productcheckres.ReclaimCheckDeductItemDO;
import cn.iocoder.yudao.module.reclaim.dal.dataobject.productcheckres.ReclaimCheckResDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface CheckResConvert {
    CheckResConvert INSTANCE = Mappers.getMapper(CheckResConvert.class);
    default ReclaimCheckResRespVO convert(ReclaimCheckResDO resDO, List<ReclaimCheckDeductItemDO> itemDOList) {
        ReclaimCheckResRespVO res = convertVo(resDO);
        res.setCheckDeductItems(convert(itemDOList));
        return res;
    }
    ReclaimCheckResRespVO convertVo(ReclaimCheckResDO resDO);

    List<ReclaimCheckDeductItemRespVO> convert(List<ReclaimCheckDeductItemDO> itemDOList);
    ReclaimCheckResDTO convert(ReclaimCheckResSaveReqVO saveReqVO);
}
